Customer premises equipment (CPE) refers generally to any device or equipment located at a subscribers premises and connected with a service provider's communications network. Generally, the CPE is also connected to a local area network at the customer premises and is network connected in some form or another. For example, CPE devices could include telephones, routers, switches, gateways, cable set-top boxes, networking adaptors, Wi-Fi access points, and internet access gateways.
CPE devices have grown more and more sophisticated over the years, evolving from an Ethernet access device to advanced gateway devices with Wi-Fi capabilities, multiple network ports, firewall, and DHCP capabilities, for example. Development in the art is also fast moving and there are routinely new CPEs released which support existing and new capabilities. For practical and business reasons, legacy devices are not upgraded, in part due to their inability to support the corresponding increased demands in computing power and memory that the new capabilities require. In some instances, new functionality is added to supported CPEs through firmware upgrades if the device is able to support it and there are sound business reasons for adding capabilities to non-end-of-life devices. Each of the CPEs in one premises are typically connected to one or more gateways, which then interface with the exterior communications network.
There is also a trend in the communications art known as network function virtualization which aims to virtualize networked services that were previously provided by proprietary CPE hardware device firmware features, in effect seeking to decouple hardware from software. This is often implemented by providing a software stack augmented to provide the same level of functionality that the traditional hardware device could deliver. Such hardware devices typically had this functionality programmed on an ASIC or embedded in a system-on-a-chip stack. The software stack would then be required to run on a common off the shelf system, which in turn could be virtualized in a cloud environment to thus provide the virtualized networked service.
There are several strategies in the prior art which propose supporting network function virtualization for CPE devices. One approach is to continue with the modern gateway but to inject arbitrary executable code remotely on the gateway without having to deploy a new firmware image. However, this approach has its challenges, including the requirement that the gateway would need to be updated with the ability to execute arbitrary code, which would need to be accomplished via a new firmware that would need to be deployed. Another difficulty arises from the fact that there are several system on a chip manufacturers providing the framework for most CPEs, with varying architectures, meaning that unless there is a common virtual runtime environment that is leveraged, it could be quite cumbersome to provide the same functionality to all CPEs at a service provider especially if there are more than a few different device types and models.
There is accordingly a need in the art for an improved system and/or method to virtualize certain functions of CPE devices to improve upon the limitations brought forth by having legacy CPE devices at a customer premises.